package com.ld.security.common.core.modal.chain;

/**
 * 代理链任务抽象
 */
public interface ChainItem<K,V> {

    /**
     *
     * @param val
     * @return
     */
    default V apply(K val){
        return apply(val,null);
    }

    /**
     *
     * @param val
     * @param oper 运算符
     * @return
     */
     V apply(K val,String oper);


    /**
     * 是否处理
     * @param val
     * @return
     */
    boolean match(Object val);
}
